/* Picaroon Item definitions */

type ItemType uint8

//placeholder item types (from the generic set of Roguelike item types)
const (
	IT_SCROLL = iota
	IT_WAND 
	IT_FOOD
	IT_ARMOUR
	IT_WEAPON
	IT_RING
	IT_POTION
)


//So, what properties do Items have? "Type" - Wand, Armour, Food, etc. Use() function. Display hints? (I guess Icon is Type specific, but colour might not be)
// Some Description() blurb about it. Maybe some Aihints to help Creature AI know how to use it. [and of course, possibly traditional b/u/c status + enchantments]
type Wand struct{
	type ItemType = IT_WAND
	//other properties - should this really be an interface?
}

type Food struct {
	type ItemType = IT_FOOD
}

type Item interface {
	Type() ItemType
	Use()	result 
	/* 
		Use functions are potentially complex, since the Item may need additional info (targetting cells for spells/wands/thrown items or
			targetting items for (say) blessing or enchanting ). On the other hand, other items may need no info at all.
			At the very least, we need to provide the Use function with the Creature who is using it, because even items needing no info will
			want to affect their user somehow (teleport them randomly, curse their entire inventory...)
	*/ 
	Description() string //A string containing a short description of the item.
	Sort()	sort // the rune/fg/bg mix to use to display the item (defined over in map.go)
}
